/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * SpelersOverzicht.java
 *
 * Created on 13-dec-2011, 12:48:22
 */
package view;

import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import model.Speler;

/**
 *
 * @author tomkeim
 */
public class SpelersOverzicht extends javax.swing.JFrame {

    protected DefaultTableModel tableModel;

    /** Creates new form SpelersOverzicht */
    public SpelersOverzicht() {
        initComponents();



       

        tableModel = new DefaultTableModel() {

            public boolean isCellEditable(int rowIndex, int mColIndex) {
                return false;
            }
        };
        
        spelerTabel.setModel(tableModel);
        tableModel.addColumn("Speler ID");
        tableModel.addColumn("Naam");
        tableModel.addColumn("Adres");
        tableModel.addColumn("Postcode");
        tableModel.addColumn("Woonplaats");
        tableModel.addColumn("Telefoon");
        tableModel.addColumn("Emailadres");
        tableModel.addColumn("Rating");
        tableModel.addColumn("Geblokkeerd");
        
        addSpelersToTable();
    }

    protected void addSpelersToTable() {
        //Als de toggle button geselecteerd is voert query SpelersNietBetaald uit, anders standaard. Of een speler betaald heeft staat nog niet in de database dus staat betaald nog in een comment
       Speler[] spelers = Speler.getSpelers();
        for (int i = 0; i < spelers.length; i++) {
            Speler speler = spelers[i];
            String isGeblokkeerdJaNee = "Nee";
            if (speler.isIsGeblokkeerd() == true) isGeblokkeerdJaNee = "Ja";
            tableModel.addRow(new Object[]{speler.getSpelerid(), speler.getNaam(), speler.getAdres(), speler.getPostcode(), speler.getWoonplaats(), speler.getTelefoonNummer(), speler.getEmail(), speler.getRating(), isGeblokkeerdJaNee});
        }
  }
    
    
   

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        wijzigButton = new javax.swing.JButton();
        deleteButton = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        spelerTabel = new javax.swing.JTable();
        vernieuwButton = new javax.swing.JButton();
        blokkeerButton = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Overzicht van spelers");
        setLocationByPlatform(true);

        wijzigButton.setText("Speler wijzigen");
        wijzigButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                wijzigButtonActionPerformed(evt);
            }
        });

        deleteButton.setText("Speler verwijderen");
        deleteButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                deleteButtonActionPerformed(evt);
            }
        });

        spelerTabel.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null},
                {null, null, null, null, null, null, null, null}
            },
            new String [] {
                "Code", "Adres", "Postcode", "Woonplaats", "Telefoon", "Email", "Rating", "Geblokkeerd"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, true, false, false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jScrollPane1.setViewportView(spelerTabel);

        vernieuwButton.setText("Vernieuw");
        vernieuwButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                vernieuwButtonActionPerformed(evt);
            }
        });

        blokkeerButton.setText("Speler (de)blokkeren");
        blokkeerButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                blokkeerButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 736, Short.MAX_VALUE)
                    .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                        .add(wijzigButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 183, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(18, 18, 18)
                        .add(deleteButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 158, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(18, 18, 18)
                        .add(blokkeerButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 159, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 123, Short.MAX_VALUE)
                        .add(vernieuwButton)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(8, 8, 8)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(vernieuwButton)
                    .add(wijzigButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 29, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(deleteButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 29, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(blokkeerButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 28, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(28, 28, 28)
                .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 265, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(22, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void wijzigButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_wijzigButtonActionPerformed
        new SpelerWijzigen().setVisible(true);
        // TODO add your handling code here:
    }//GEN-LAST:event_wijzigButtonActionPerformed

    private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteButtonActionPerformed
        // Speler wordt op code gezocht
        Speler spel = new Speler();
        String codeString = JOptionPane.showInputDialog(null, "Voer het Spelerid in", "");
        // String Jpanel invoer = Codestring
        // String wordt naar een Int geparsed
        int code = Integer.parseInt(codeString);
        spel = Speler.getSpeler(code);
        System.out.println(spel);
        // Speler wordt uit DB verwijderd
        if (code > 0) {
            if (spel.exists(code) == true) {
            int Confirmdelete = JOptionPane.showConfirmDialog(null, "Weet u zeker dat u de Speler met het id " + code + " wilt verwijderen?");

            if (Confirmdelete == JOptionPane.YES_OPTION) {


                if (spel.delete() == true) {
                    JOptionPane.showMessageDialog(null, "De Speler is verwijderd");
                } else {
                    JOptionPane.showMessageDialog(null, "De Speler is niet verwijderd");
                }
            } else {
                JOptionPane.showMessageDialog(null, "De Speler is niet verwijderd");
            }
        }
            else
            {
                JOptionPane.showMessageDialog(null, "De Speler met het id " + code + " bestaat niet.");
            }
        }

    }//GEN-LAST:event_deleteButtonActionPerformed

    private void vernieuwButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vernieuwButtonActionPerformed
        tableModel.setRowCount(0);
        addSpelersToTable();
    }//GEN-LAST:event_vernieuwButtonActionPerformed

private void blokkeerButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_blokkeerButtonActionPerformed
// TODO add your handling code here:
    Speler blokkeren = new Speler();
    String blockid = JOptionPane.showInputDialog(null, "Voer een Spelers ID in.");
    int id = Integer.parseInt(blockid);

    blokkeren = Speler.getSpeler(id);
    System.out.println(blokkeren);
    if (blokkeren.exists(id) == true) {
    if (blokkeren.isIsGeblokkeerd() == false) {
        int confirm = JOptionPane.showConfirmDialog(null, "Weet u zeker dat u de speler met id " + id + " wilt blokkeren?");
        if (confirm == JOptionPane.YES_OPTION) {
            blokkeren.setIsGeblokkeerd(true);
            if (blokkeren.blokkeer() == true) {
                JOptionPane.showMessageDialog(null, "De speler is succesvol geblokkeerd.");
            } else {
                JOptionPane.showMessageDialog(null, "Er is een fout opgetreden");

            }
        } else {
            JOptionPane.showMessageDialog(null, "Blokkeren geannuleerd.");
        }
    } else if (blokkeren.isIsGeblokkeerd() == true) {
        int confirm = JOptionPane.showConfirmDialog(null, "Weet u zeker dat u de speler met id " + id + " wilt deblokkeren?");
        if (confirm == JOptionPane.YES_OPTION) {
            blokkeren.setIsGeblokkeerd(false);
        }
        if (blokkeren.blokkeer() == true) {

            JOptionPane.showMessageDialog(null, "De speler is succesvol gedeblokkeerd.");
        } else {
            JOptionPane.showMessageDialog(null, "Et is een fout opgetreden.");
        }
    } else {
        JOptionPane.showMessageDialog(null, "Deblokkeren geannuleerd.");
    }
    }
    else
    {
        JOptionPane.showMessageDialog(null,"De Speler met het id " + id + " bestaat niet.");
    }

}//GEN-LAST:event_blokkeerButtonActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;


                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(SpelersOverzicht.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(SpelersOverzicht.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(SpelersOverzicht.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(SpelersOverzicht.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new SpelersOverzicht().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton blokkeerButton;
    private javax.swing.JButton deleteButton;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable spelerTabel;
    private javax.swing.JButton vernieuwButton;
    private javax.swing.JButton wijzigButton;
    // End of variables declaration//GEN-END:variables
}
